<template>
 <ul class="todo" id="todo">

<li v-for="(item, index) in list" :key="index">
<div v-show="!editing[index]"  @dblclick="startEdit(index)">
    {{ item.message }}
</div>


  <input type="text"  ref="edit-input" v-model="item.message" @keyup.enter="completeEdit(item,index)" @blur="completeEdit(item,index)" v-show="editing[index]">
<div class="buttons">
  <button class="remove" @click="$emit('del',item)">        
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" style="enable-background:new 0 0 22 22;" xml:space="preserve"><rect class="noFill" width="22" height="22"/><g><g><path class="fill" d="M16.1,3.6h-1.9V3.3c0-1.3-1-2.3-2.3-2.3h-1.7C8.9,1,7.8,2,7.8,3.3v0.2H5.9c-1.3,0-2.3,1-2.3,2.3v1.3c0,0.5,0.4,0.9,0.9,1v10.5c0,1.3,1,2.3,2.3,2.3h8.5c1.3,0,2.3-1,2.3-2.3V8.2c0.5-0.1,0.9-0.5,0.9-1V5.9C18.4,4.6,17.4,3.6,16.1,3.6z M9.1,3.3c0-0.6,0.5-1.1,1.1-1.1h1.7c0.6,0,1.1,0.5,1.1,1.1v0.2H9.1V3.3z M16.3,18.7c0,0.6-0.5,1.1-1.1,1.1H6.7c-0.6,0-1.1-0.5-1.1-1.1V8.2h10.6V18.7z M17.2,7H4.8V5.9c0-0.6,0.5-1.1,1.1-1.1h10.2c0.6,0,1.1,0.5,1.1,1.1V7z"/></g><g><g><path class="fill" d="M11,18c-0.4,0-0.6-0.3-0.6-0.6v-6.8c0-0.4,0.3-0.6,0.6-0.6s0.6,0.3,0.6,0.6v6.8C11.6,17.7,11.4,18,11,18z"/></g><g><path class="fill" d="M8,18c-0.4,0-0.6-0.3-0.6-0.6v-6.8c0-0.4,0.3-0.6,0.6-0.6c0.4,0,0.6,0.3,0.6,0.6v6.8C8.7,17.7,8.4,18,8,18z"/></g><g><path class="fill" d="M14,18c-0.4,0-0.6-0.3-0.6-0.6v-6.8c0-0.4,0.3-0.6,0.6-0.6c0.4,0,0.6,0.3,0.6,0.6v6.8C14.6,17.7,14.3,18,14,18z"/></g></g></g></svg>
  </button>

  <button class="uncomplete" @click="$emit('updateitem',item)">
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 22 22" style="enable-background:new 0 0 22 22;" xml:space="preserve"><rect y="0" class="noFill" width="22" height="22"/><g><path class="fill" d="M9.7,14.4L9.7,14.4c-0.2,0-0.4-0.1-0.5-0.2l-2.7-2.7c-0.3-0.3-0.3-0.8,0-1.1s0.8-0.3,1.1,0l2.1,2.1l4.8-4.8c0.3-0.3,0.8-0.3,1.1,0s0.3,0.8,0,1.1l-5.3,5.3C10.1,14.3,9.9,14.4,9.7,14.4z"/></g></svg>
    </button>
</div>

</li>

</ul>
</template>

<script setup lang="ts">
import type { PropType } from 'vue';
import { ref,nextTick, useTemplateRef,onMounted  } from 'vue';
const editInput =  useTemplateRef('edit-input');
const emit= defineEmits(['del','updateitem'])
//
const editing= ref([])
const props = defineProps({
  list: Object as PropType<{ message: string; completed: boolean }[]>
  
})

onMounted(()=>{
  for(let i=0;i<=100;i++)
    editing.value.push(false)
 
})
function startEdit(index) {
    editing.value[index] = true;
  debugger
    if(editInput.value)
      editInput.value[index].focus();
    
}

function completeEdit(item,index){
  
   editing.value[index] = false
    emit('updateitem',item)
}
//const emit=


</script>

<style scoped>
.noFill {
  fill: none;
}
ul.todo {
  width: 100%;
  float: left;
}

ul.todo li {
  width: 100%;
  min-height: 50px;
  float: left;
  font-size: 14px;
  font-weight: 500;
  color: #444;
  line-height: 22px;
  list-style: none;
  background: #fff;
  border-radius: 5px;
  position: relative;
  box-shadow: 0px 1px 2px rgba(44, 62, 80, 0.10);
  margin: 0 0 10px 0;
  padding: 14px 100px 14px 14px;
  word-break: break-word;
}

ul.todo li:last-of-type {
  margin: 0;
}

ul.todo li .buttons {
  width: 100px;
  height: 50px;

  position: absolute;
  top: 0;
  right: 0;
}

ul.todo li .buttons button {
  width: 50px;
  height: 50px;
  float: left;
  background: none;
  position: relative;
  border: 0px;
  box-shadow: none;
  outline: none;
  cursor: pointer;

  -webkit-appearance: none;
  -moz-appearance: none;
}

ul.todo li .buttons button:last-of-type:before {
  content: '';
  width: 1px;
  height: 30px;
  background: #edf0f1;

  position: absolute;
  top: 10px;
  left: 0;
}

ul.todo li .buttons button svg {
  width: 22px;
  height: 22px;

  position: absolute;
  top: 50%;
  left: 50%;

  margin: -11px 0 0 -11px;
}

ul.todo li .buttons button.uncomplete svg {
  border-radius: 11px;
  border: 1.5px solid #25b99a;

}

ul.todo li .buttons button.complete svg {
  border-radius: 11px;
  border: 1.5px solid #25b99a;

  transition: background 0.2s ease;
}

ul.todo#completed li .buttons button.complete svg {
  background: #25b99a;
  border: 0px;
}

ul.todo:not(#completed) li .buttons button.complete:hover svg {
  background: rgba(37, 185, 154, 0.75);
}

ul.todo:not(#completed) li .buttons button.complete:hover svg .fill {
  fill: #fff;
}

ul.todo#completed li .buttons button.complete svg .fill {
  fill: #fff;
}

ul.todo li .buttons button svg .fill {
  transition: fill 0.2s ease;
}

ul.todo li .buttons button.remove svg .fill {
  fill: #c0cecb;
}

ul.todo li .buttons button.remove:hover svg .fill {
  fill: #e85656;
}

ul.todo li .buttons button.complete svg .fill {
  fill: #25b99a;
}

ul.todo#completed {
  position: relative;
  padding: 60px 0 0 0;
}

ul.todo#completed:before {
  content: '';
  width: 150px;
  height: 1px;
  background: #d8e5e0;

  position: absolute;
  top: 30px;
  left: 50%;

  margin: 0 0 0 -75px;
}

ul.todo#todo:empty:after {
  content: 'You have nothing to-do!';
  margin: 15px 0 0 0;
}

ul.todo#completed:empty:after {
  content: 'You have yet to complete any tasks.';
}

ul.todo#todo:after,
ul.todo#completed:after {
  width: 100%;
  display: block;
  text-align: center;
  font-size: 12px;
  color: #aaa;
}
</style>

